FIG. 15 illustrates a computer system including a storage system. A computer system 100 includes a host 200 of a server or a computer system and a storage system 300.
The storage system 300 forms redundant array independent disks (RAID) for storage devices, such as magnetic disk devices (HDDs), thereby enhancing redundancy of data and providing the host 200 with desired performance characteristics.
Modules of the storage system 300 are described below. A controller module (CM) 400 includes a host interface 401 for controlling an interface with the host 200.
When receiving an operation request to write/read data from the host 200, the host interface 401 notifies a central processing unit (CPU) 402 of a processing request. The host interface 401 accesses a cache memory on the CM 400 and transfers data between the storage system 300 and the host 200.
The CM 400 is a control module that is the core of all modules of the storage system 300. The CM 400 further includes a memory 403. The memory 403 is used for management of allocation and management of a cache memory in overall control. The CM 400 provides various services by controlling the CPU 402 using software.
A drive set 500 includes a plurality of drives containing magnetic disk devices (HDDs) 1 to 7 and a solid state drive (SSD) 510. A device interface (DI) 405 is a module for use in communication with the drive set 500. The DI 405 is interface-connected to a fibre channel (FC) cable 410 for communication with the drive set 500.
The CM 400 controls the fibre channel interface for use in communication with the drive set 500, controls input to and output from the drive set, and performs RAID control by using the DI 405 incorporated therein.
Each of the DI 405, which is an initiator, and the HDDs and the SSD 510 of the drive set 500 has a fibre channel (FC) port, and the FC ports form an arbitrated loop with the FC cable 410 and are connected to each other.
An arbitrated loop is one of the fibre channel connection modes, and it connects a plurality of FC ports in a loop shape and allows communication between one pair of ports among them. The arbitrated loop may be able to connect 127 devices at the maximum.
Input/output (I/O) processing using burst transfer of a storage device, such as HDD, is discussed. Here, burst transfer is one technique for enhancing the speed of data transfer and is means for enhancing a transfer speed by omitting part of a procedure, for example, addressing, in transferring continuous data.
A burst transfer length is the amount of data capable of being transferred at a time to a storage device (drive) in burst transfer. If the size of data to be transferred is larger than the burst transfer length, the storage device transfers the data in multiple portions. It is generally assumed that the speed of transferring data increases with an increase in the burst transfer length.
FIG. 16 illustrates command processing performed by the CPU on the HDDs. I/O processing using burst transfer of the HDDs 1 to 4 is described as one example. The CM 400 receives read commands 1 to 4 from the host and transfers the commands to the HDDs 1 to 4 through the DI 405. As illustrated in FIG. 15, because the plurality of HDDs shares the serial bus, a bus occupation time at a time is previously set for each HDD.
The I/O processing using burst transfer accesses data in units of burst transfer length. Therefore, the number of data transfer events increases with an increase in the amount of data to the HDDs 1 to 4.
As illustrated in FIG. 16, if a plurality of data transfer events occur, for example, there is a gap between the read data transfer events 1-1 and 1-2 of the HDD 1. In this gap, the read data transfer events 2-1, 3-1, and 4-1 of other HDDs 2 to 4 occur. Subsequently, the read data transfer event 1-2 of the HDD 1 occurs, and the read data transfer events 2-2, 3-2, and 4-2 of the HDDs 2 to 4 occur in the gap between the read data transfer events 1-2 and 1-3.
Accordingly, because, in data transfer using a serial bus shared by a plurality of drives, I/O processing that each drive intends to perform has to wait, the I/O processing is delayed, in comparison with that occurring in data transfer using a serial bus occupied by a single drive.
FIG. 17 is a timing chart that illustrates how the bus is occupied when the drives have the same burst transfer length. When the CPU 402 issues a read request of the same 1 MB to each of the HDDs 1 to 4, the read data elements 1-1 to 4-1 of the respective HDDs 1 to 4 are transferred in units of 128 KB. After that, the read data elements 1-2 to 4-2, 1-3 to 4-3, 1-n to 4-n are transferred in sequence.
When the drives have the same bus occupation time, the drives are possible to equally complete command processing, and the host 200 does not recognize differences in performances among the drives. Accordingly, when all the drives have the same burst transfer length, their bus occupation times are the same and the performance values of the drives are also the same.
However, burst transfer lengths may vary depending on the type of a drive, such as HDD or SSD. FIG. 18 is a timing chart that illustrates how the bus is occupied when there is a drive having a different burst transfer length. In this case, the SSD 510 has a burst transfer length of 32 KB, and each of the HDDs 1 to 3 has a burst transfer length of 128 KB. Accordingly, the SSD 510 and each of the HDDs 1 to 3 have different bus occupation times.
As illustrated in FIG. 18, when the CPU 402 issues a read request of 1 MB to each of the HDDs 1 to 3 and the SSD 510, the read data elements 1-1, 2-1, and 3-1 of the respective HDDs 1 to 3 and the read data element 5-1 of the SSD 510 are transferred in succession. Each of the read data elements of the HDDs 1 to 3 is transferred in units of 128 KB, and the read data element of the SSD 510 is transferred in units of 32 KB.
After that, the read data elements 1-2 to 5-2, 1-3 to 5-3, . . . , 1-m to 5-m are transferred in sequence. Subsequently, the remaining read data elements 5-m+1 to 5-n of the SSD 510 are collectively transferred. That is, it takes time to transfer the remaining, and only the SSD completes the command late. Therefore, the host 200 recognizes the SSD as having degraded performance.
Thus, because the SSD 510 has a short burst transfer length and its bus occupation time is short, its response time is longer than that of each of the other HDDs 1 to 3. Depending on the response time, a timeout may occur in command processing at the host side.
The time for which a storage device occupies a bus is determined by the maximum value of the amount of transfer at a time possessed by the storage device, that is, the maximum value of the burst transfer length. The burst transfer length may be changed depending on the settings in the storage device; but it is difficult to change the burst transfer length if it is uniquely determined.
Accordingly, when a single serial bus is used as a path, if storage devices have different burst transfer lengths, there is a problem that the performance of a storage device with a short burst transfer length is degraded by the effects of a storage device with a long burst transfer length. This is a cause of degraded overall system performance and decreased reliability.
Under cloud computing environment, if such degradation in performance of a storage device occurs, a user is unable to grasp situations of a storage system, and reliability of the overall storage system is decreased.